继承,对象间的类型转换,接口,多态的代码案例,以及对自身的反思
来源:互联网 发布:淘宝申请退款时间5天 编辑:程序博客网 时间:2024/06/10 08:40
//继承
public class Person {
public String name;public int age;
public void say(){
System.out.println(name+" can say");
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
public class student extends Person{
public String schoolname;
public void Gotoschool(){
System.out.println("I am going to school");
}
}
public class Test {
public static void main(String[] args) {
student s1=new student();
s1.name="MingM";
s1.age=10;
s1.schoolname="CQ";
s1.say();
s1.Gotoschool();
System.out.println("My name is"+s1.name);
System.out.println("My schoolname is"+s1.schoolname);
}
}
输出结果:
MingM can say
I am going to school
My name isMingM
My schoolname isCQ
继承使得代码得以优化,易于管理,是实现代码复用的最有效的方法
--------------------------------------------------------------------------------------------------------------------------------
//对象间的类型转换
public class A{
String s="class A";
}
public class B extends A{
String s="class B";
}
public class Test{
public static void main(String[] args) {
B bb,b=new B();
A a,aa;
a=(A)b;
aa=b;
System.out.println(a.s);
System.out.println(aa.s);
bb=(B)a;
System.out.println(bb.s);
}
}
输出结果:
class A
class A
class B
虽然将对象间的类型转换了,但是并没有转换类内的值,所以a.s和aa.s的类型转换完却还是A类的s的值
--------------------------------------------------------------------------------------------------------------------------------
interface A {
int a=1;
void showA();
}
interface B {
int b=2;
void showB();
}
interface C extends A,B{
int c=3;
void showC();
}
class D implements C{
public void showA(){
System.out.println("aaaa="+a+a+a+a);
}
public void showB(){
System.out.println("bbbb="+b+b+b+b);
}
public void showC(){
System.out.println("cccc="+c+c+c);
}
public static void main(String[] args) {
D d1=new D();
d1.showA();
d1.showB();
d1.showC();
}
}
输出结果:
aaaa=1111
bbbb=2222
cccc=333
接口类中的方法都是抽象的,所以跟抽象类一样无法自主实现,需要子类来实现,且子类在实现接口时必须实现接口中的方法
--------------------------------------------------------------------------------------------------------------------------------
public abstract class Shape {
public abstract double getArea();
}
public class Circle extends Shape{
private double r=0;
private final static double PI=3.14;
public Circle(double r){
this.r=r;
}
public double getArea(){
return (PI*r*r);
}
}
public class Square extends Shape{
private double height=0;
public Square(double height){
this.height=height;
}
public double getArea(){
return (this.height*this.height);
}
}
public class Triangle extends Shape{
private double a=0;//三角形的边:a
private double b=0;//三角形的边:b
private double c=0;//三角形的边:c
private double h=0;//三角形的高
public Triangle(double a,double h){
this.a=a;
this.h=h;
}
public Triangle(double a,double b,double c){
this.a=a;
this.b=b;
this.c=c;
}
public double getArea(){
if(h==0){
double s=(a+b+c)/2;
return Math.pow(s*(s-a)*(s-b)*(s-c),0.5);
}else{
return (a*h/2);
}
}
}
public class TestShape {
public static void main(String[] args) {
Shape square=new Square(3);
Shape circle=new Circle(2);
Shape triangle1=new Triangle(3,4,5);
Shape triangle2=new Triangle(3,4);
System.out.println(square.getArea());
System.out.println(circle.getArea());
System.out.println(triangle1.getArea());
System.out.println(triangle2.getArea());
}
}
输出结果:
9.0
12.56
6.0
6.0
这是利用多态创建的图形类,通过抽象出的父类来定义一个公共的函数来实现求面积的功能,子类通过重写父类中的方法来实现求自身面积的方法 ,跟我期末考试的编程题思路是一样的
说到期末考试,我必须认真的反思下我最近的行为了,可以说是极度膨胀了,现在想想,真TM是个SB。也幸亏被我的导师骂醒,真的要谢谢他,让我能够认清现在的自己是多么的微不足道,也感谢他能让我在今后的二年不会浑浑噩噩的度过。讲道理,如果不学JAVA,或者我学JAVA的时候不是碰到他,我估计我现在不是在写博客,而是在通宵打游戏吧,虽然我醒悟的有点晚(可以说是非常的晚了),但是我认真的去学这个东西,也不至于毕业的时候一事无成,面试的 时候没有一点底气也没有。今天在学习JSP的基本概念时,接触到了许多东西:C/S结构,B/S结构,Model1工作原理和Model2工作原理,JSP,JavaBean,Servlet的作用等等,打开一扇新世界的大门。最后的最后,借用我老师的一句话,脚踏实地的去学,不要浮躁,不要膨胀,我跟那些牛逼的人比起来,屁都不是!!!
- 继承,对象间的类型转换,接口,多态的代码案例,以及对自身的反思
- 【C/C++学院】0822-类型转换函数与构造转换函数/类的继承/类的继承以及区别/继承静态成员与静态函数//继承实现代码重用/单继承QT案例/多继承简介以及实战/Gpu编程
- 接口、抽象类、封装、继承、多态的综合案例
- Java继承和多态===Java多态对象的类型转换
- java面向对象的封装、继承、多态案例
- 面向对象(对封装,继承,多态,接口的总结)
- 老大的幸福、蜗居是现代人对自身价值的反思!!
- Java多态对象的类型转换
- JAVA基础(一):面向对象之接口与继承以及子类父类的相互转换
- 对计算机科学的反思
- 对计算机科学的反思
- 对交四金的反思
- 对愚公移山的反思
- 对计算机科学的反思
- 对自己的反思
- 对象的类型转换
- 对象类型的转换
- 对象类型的转换
- hibernate的基础入门
- C++跨域重载实践
- Chrome浏览器flash player问题的终极解决方案
- 文章标题
- 关于两条绳子的问题
- 继承,对象间的类型转换,接口,多态的代码案例,以及对自身的反思
- SLA的基本概念
- 使用Spring中的interceptor
- 优雅地乱玩Linux-5-GitMerge工具Meld
- 欢迎使用CSDN-markdown编辑器
- csu A Easy Problem 六十四位无符号组合数
- 数据压缩实验四--dpcm压缩系统
- Ajax编程初探
- spring boot