当前位置: 首页 > news >正文

Android java基础_类的继承

一.Android Java基础_类的继承

先封装一个persion类,在persion的基础上定义Student类,并基础persion类。

子类能访问父类的成员函数。

class Person {private int age;public void setAge(int age) {if (age < 0 || age > 200)age = 0;else {this.age = age;}}public int getAge() {return age;}	
}class Student extends Person{
}public class Ext {public static void main (String args[]) {Student stu = new Student();stu.setAge(10);System.out.println(stu.getAge());}
}

运行结果:

root@ubuntu:/home/topeet/guyilian# javac Ext.java 
root@ubuntu:/home/topeet/guyilian# java Ext
10

在上面的代码基础上,我们的子类继承了父类,我们可以添加自己的属性还有方法.

class Person {private int age;public void setAge(int age) {if (age < 0 || age > 200)age = 0;else {this.age = age;}}public int getAge() {return age;}	
}class Student extends Person{private String school;public void setSchool(String school) {this.school = school;}public String getSchool() {return school;}	public Student(String school) {this.school = school;}}public class Ext2 {public static void main (String args[]) {Student stu = new Student("ustc");stu.setAge(10);System.out.println(stu.getAge());System.out.println(stu.getSchool());}
}

运行结果:

root@ubuntu:/home/topeet/guyilian# javac Ext2.java 
root@ubuntu:/home/topeet/guyilian# java Ext2
10
ustc

子类继承父类的方法和属性都可以进行覆写,我们在子类覆写父类的printInfo方法。

class Person {private int age;public void setAge(int age) {if (age < 0 || age > 200)age = 0;else {this.age = age;}}public int getAge() {return age;}	public void printInfo() {System.out.println("age = "+age);}
}class Student extends Person{private String school;public void setSchool(String school) {this.school = school;}public String getSchool() {return school;}	public Student(String school) {this.school = school;}/* override */public void printInfo() {System.out.println("school = "+school+"; age = "+getAge());}}public class Ext3 {public static void main (String args[]) {Student stu = new Student("ustc");stu.setAge(10);System.out.println(stu.getAge());System.out.println(stu.getSchool());stu.printInfo();}
}

运行结果:

root@ubuntu:/home/topeet/guyilian# javac Ext3.java 
root@ubuntu:/home/topeet/guyilian# java Ext3
10
ustc
school = ustc; age = 10

实例化子类对象时,先调用父类的构造方法,再调用子类的构造方法,super()函数在子类中可以指定调用父类构造函数的类型。

class Person {private int age;public void setAge(int age) {if (age < 0 || age > 200)age = 0;else {this.age = age;}}public int getAge() {return age;}	public void printInfo() {System.out.println("age = "+age);}public Person () {System.out.println("Person ()");}public Person (int age) {System.out.println("Person (int age)");this.age = age;}}class Student extends Person{private String school;public void setSchool(String school) {this.school = school;}public String getSchool() {return school;}	public Student(String school) {/* will call the super() *///super();super(5);System.out.println("Student(String school)");this.school = school;}/* override */public void printInfo() {System.out.println("school = "+school+"; age = "+getAge());}}public class Ext4 {public static void main (String args[]) {Student stu = new Student("ustc");//stu.setAge(10);System.out.println(stu.getAge());System.out.println(stu.getSchool());stu.printInfo();}
}

运行结果:

root@ubuntu:/home/topeet/guyilian# javac Ext4.java 
root@ubuntu:/home/topeet/guyilian# java Ext4
Person (int age)
Student(String school)
5
ustc
school = ustc; age = 5

抽象类规定子类必须实现的方法,起“模板”作用,缺点不能实例化对象,子类必须覆写全部抽象方法。

abstract class Father {private int money;	public int getMoney() {return money; }public void setMoney(int money) {this.money = money; }public abstract void study();
}class Son extends Father{public void study() {System.out.println("I am study"); }}public class Ext6 {public static void main (String args[]) {//Father f = new Father();Son son = new Son();son.study();}
}

运行结果:

root@ubuntu:/home/topeet/guyilian# javac Ext6.java 
root@ubuntu:/home/topeet/guyilian# java Ext6
I am study

作用:跟抽象类相似,起“模板”作用;子类可以继承多个接口,突破“单继承”的限制。

abstract class Father {private int money;	public int getMoney() {return money; }public void setMoney(int money) {this.money = money; }public abstract void study();
}class Son extends Father{public void study() {System.out.println("I am study"); }}public class Ext6 {public static void main (String args[]) {//Father f = new Father();Son son = new Son();son.study();}
}

运行结果:

root@ubuntu:/home/topeet/guyilian# javac Ext7.java
root@ubuntu:/home/topeet/guyilian# java Ext7
InterfaceB
I am study

http://www.lryc.cn/news/299332.html

相关文章:

  • nginx stream proxy 模块的ssl连接源码分析
  • C#面:Static Nested Class 和 Inner Class 有什么不同
  • LeetCode、208. 实现 Trie (前缀树)【中等,自定义数据结构】
  • java数据结构与算法刷题-----LeetCode151. 反转字符串中的单词
  • 《Java 简易速速上手小册》第8章:Java 性能优化(2024 最新版)
  • mysql全国省市县三级联动创表sql(一)
  • go面试题--使用两个goroutine交替打印数字与字母
  • DolphinScheduler-3.2.0 集群搭建
  • 07:Kubectl 命令详解|K8S资源对象管理|K8S集群管理(重难点)
  • 【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)
  • Windows搭建docker+k8s
  • 年假作业10
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • 【生产实测可用】Redis修改集群弱口令
  • 备战蓝桥杯---图论基础理论
  • [office] excel2003进行可视性加密的方法 #媒体#其他#知识分享
  • 算法沉淀——分治算法(leetcode真题剖析)
  • Qt 进程守护程序
  • Linux_文件系统
  • 算法沉淀——链表(leetcode真题剖析)
  • Flink从入门到实践(一):Flink入门、Flink部署
  • python分离字符串 2022年12月青少年电子学会等级考试 中小学生python编程等级考试二级真题答案解析
  • Excel练习:折线图突出最大最小值
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之MenuItem组件
  • Mockito测试框架中的方法详解
  • Atcoder ABC339 A - TLD
  • 企业级DevOps实战
  • C++中的new和delete
  • rtt设备io框架面向对象学习-dac设备
  • 腾讯云幻兽帕鲁服务器配置怎么选择合适?