Inheritance overview
package extendsBase;
public class Demo {
public static void main ( String[ ] args) {
Fu f = new Fu ( ) ;
f. show ( ) ;
Zi z = new Zi ( ) ;
z. method ( ) ;
z. show ( ) ;
}
}
package extendsBase;
public class Fu {
public void show ( ) {
System. out. println ( "show方法被调用" ) ;
}
}
Use of super
package superStudy;
public class Demo {
public static void main ( String[ ] args) {
Zi z = new Zi ( ) ;
z. show ( ) ;
}
}
package superStudy;
public class Fu {
public int age = 40 ;
}
package superStudy;
public class Zi extends Fu {
public int age = 20 ;
public void show ( ) {
int age = 30 ;
System. out. println ( age) ;
System. out. println ( this . age) ;
System. out. println ( super . age) ;
}
}
package extendsBase;
public class Zi extends Fu {
public void method ( ) {
System. out. println ( "method方法被调用" ) ;
}
}
Method rewriting
package extendsMethodRe;
public class PhoneDemo {
public static void main ( String[ ] args) {
Phone p = new Phone ( ) ;
p. call ( "林青霞" ) ;
System. out. println ( "-----------------" ) ;
NewPhone np = new NewPhone ( ) ;
np. call ( "林青霞" ) ;
}
}
package extendsMethodRe;
public class Phone {
public void call ( String name) {
System. out. println ( "给" + name+ "打电话" ) ;
}
}
package extendsMethodRe;
public class NewPhone extends Phone {
@Override
public void call ( String name) {
System. out. println ( "开启视频功能" ) ;
super . call ( name) ;
}
}
Method rewrite considerations
public class Zi extends Fu {
@Override
void method ( ) {
System. out. println ( "Zi中method()方法被调用" ) ;
}
}
Access characteristics of variables in inheritance
package extendsMakeFind;
public class Demo {
public static void main ( String[ ] args) {
Zi z = new Zi ( ) ;
z. show ( ) ;
}
}
package extendsMakeFind;
public class Fu {
public int age = 40 ;
}
package extendsMakeFind;
public class Zi extends Fu {
public int height = 175 ;
public int age = 20 ;
public void show ( ) {
int age = 40 ;
System. out. println ( age) ;
System. out. println ( height) ;
}
}
Access characteristics of construction methods in inheritance
package myExtends;
public class Demo {
public static void main ( String[ ] args) {
Zi z1 = new Zi ( ) ;
Zi z2 = new Zi ( 20 ) ;
}
}
package myExtends;
public class Fu {
public Fu ( ) {
}
public Fu ( int age) {
System. out. println ( "Fu中带参数构造方法被调用" ) ;
}
}
package myExtends;
public class Zi extends Fu {
public Zi ( ) {
System. out. println ( "Zi中无参数构造方法被调用" ) ;
}
public Zi ( int age) {
System. out. println ( "Zi中带参数构造方法被调用" ) ;
}
}
Access characteristics of member methods in inheritance
package extendsmMethodFind;
public class Demo {
public static void main ( String[ ] args) {
Zi z = new Zi ( ) ;
z. method ( ) ;
z. show ( ) ;
}
}
package extendsmMethodFind;
public class Fu {
public void show ( ) {
System. out. println ( "Fu中show()方法被调用" ) ;
}
}
package extendsmMethodFind;
public class Zi extends Fu {
public void method ( ) {
System. out. println ( "Zi中method()方法被调用" ) ;
}
public void show ( ) {
System. out. println ( "Zi中show()方法被调用" ) ;
}
}
public class Fu {
private void show ( ) {
System. out. println ( "Fu中show()方法被调用" ) ;
}
void method ( ) {
System. out. println ( "Fu中method()方法被调用" ) ;
}
}
Notes on inheritance
public class Son extends Father {
}
public class Mother {
public void dance ( ) {
System. out. println ( "妈妈爱跳舞" ) ;
}
}
public class Granddad {
public void drink ( ) {
System. out. println ( "爷爷爱喝酒" ) ;
}
}
public class Father extends Granddad {
public void smoke ( ) {
System. out. println ( "爸爸爱抽烟" ) ;
}
}
Example: teacher and student
General code
package itheima09;
public class Demo {
public static void main ( String[ ] args) {
Teacher t1 = new Teacher ( ) ;
t1. setName ( "林青霞" ) ;
t1. setAge ( 30 ) ;
System. out. println ( t1. getName ( ) + "," + t1. getAge ( ) ) ;
t1. teach ( ) ;
Teacher t2 = new Teacher ( "风清扬" , 33 ) ;
System. out. println ( t2. getName ( ) + "," + t2. getAge ( ) ) ;
t2. teach ( ) ;
}
}
public class Student {
private String name;
private int age;
public Student ( ) {
}
public Student ( String name, int age) {
this . name = name;
this . age = age;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getAge ( ) {
return age;
}
public void setAge ( int age) {
this . age = age;
}
public void study ( ) {
System. out. println ( "好好学习,天天向上" ) ;
}
}
public class Teacher {
private String name;
private int age;
public Teacher ( ) {
}
public Teacher ( String name, int age) {
this . name = name;
this . age = age;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getAge ( ) {
return age;
}
public void setAge ( int age) {
this . age = age;
}
public void teach ( ) {
System. out. println ( "用爱成就每一位学员" ) ;
}
}
Use inherited code
public class Person {
private String name;
private int age;
public Person ( ) {
}
public Person ( String name, int age) {
this . name = name;
this . age = age;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getAge ( ) {
return age;
}
public void setAge ( int age) {
this . age = age;
}
}
public class PersonDemo {
public static void main ( String[ ] args) {
Teacher t1 = new Teacher ( ) ;
t1. setName ( "林青霞" ) ;
t1. setAge ( 30 ) ;
System. out. println ( t1. getName ( ) + "," + t1. getAge ( ) ) ;
t1. teach ( ) ;
Teacher t2 = new Teacher ( "风清扬" , 33 ) ;
System. out. println ( t2. getName ( ) + "," + t2. getAge ( ) ) ;
t2. teach ( ) ;
}
}
public class Student {
public void study ( ) {
System. out. println ( "好好学习,天天向上" ) ;
}
}
public class Teacher extends Person {
public Teacher ( ) {
}
public Teacher ( String name, int age) {
super ( name, age) ;
}
public void teach ( ) {
System. out. println ( "用爱成就每一位学员" ) ;
}
}